/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package manejadores;

import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.view.JasperViewer;

import java.util.HashMap;
import com.akcess.exception.*;
import com.akcess.vo.*;
import com.akcess.impl.*;
import com.akcess.dao.*;
import java.sql.*;
import java.util.*;

/**
 * Este manejador se encarga de realizar o generar los reportes requeridos.
 * @author Alejandro
 */
public class ManejadorReportes {

    private Connection conexion = null;

    /**
     * Constructor de esta clase.
     * @param con Unico partametro que recibe que es una conexion a la Base de Datos.
     */
    public ManejadorReportes(Connection con) {
        this.conexion = con;
    }

    /**
     * Este metodo permite generar un reporte sobre los usuarios existentes en el sistema. Dejando de lado los usuarios
     * borrados.
     * @param path El path nos indica la direccion en donde se creara el reporte.
     */
    public void GenerarReporteUsuarios(String path) throws JRException {
        JasperReport jasperReport;
        JasperPrint jasperPrint;

        //Compilo el JRXML            
        jasperReport = JasperCompileManager.compileReport(path + "reportes\\UsuariosSRR.jrxml");

        // Le seteo el  DataSource y a traves de un Mapa los parametros del reporte   
        jasperPrint = JasperFillManager.fillReport(
                jasperReport, new HashMap(), this.conexion);

        //Exporto a PDF
        JasperExportManager.exportReportToPdfFile(jasperPrint, path + "reportes\\UsuariosSRR.pdf");

    }

        /**
         * Este metodo permite generar un reporte sobre las reservas existentes en el sistema, que son realizadas sobre
         * aulas. Dejando de lado las reservas canceladas.
         * @param path El path nos indica la direccion en donde se creara el reporte.
         */
    public void GenerarReporteReservasAulas(String path) throws JRException {
        JasperReport jasperReport;
        JasperPrint jasperPrint;

        //Compilo el JRXML            
        jasperReport = JasperCompileManager.compileReport(path + "reportes\\ReservasAulas.jrxml");

        // Le seteo el  DataSource y a traves de un Mapa los parametros del reporte   
        jasperPrint = JasperFillManager.fillReport(
                jasperReport, new HashMap(), this.conexion);

        //Exporto a PDF
        JasperExportManager.exportReportToPdfFile(jasperPrint, path + "reportes\\ReservasAulas.pdf");


    }
}
